package cn.com.hhrcw.vo;

import cn.com.hhrcw.annotation.Column;
import cn.com.hhrcw.annotation.Title;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @program: recruit-boot-parent
 *
 * @author: JD
 * @create: 2020-11-07 10:01
 **/
@Data
@Title(title = "招聘进度及发布岗位")
public class JobsStatisticsVO {

    /**
     * 职位id
     */
    private String jobId;

    /**
     * 职位名称
     */
    @Column(name = "职位名称")
    private String jobName;

    /**
     * 开始招聘时间
     */
    @Column(name = "开始招聘时间", timeFormat = "yyyy-MM-dd")
    private Date jobTime;

    /**
     * 计划招聘数量
     */
    @Column(name = "计划招聘数量")
    private Integer planeCount;

    /**
     * 待招聘数量
     */
    @Column(name = "待招数量")
    private Integer notCount;

    /**
     * 筛选数量
     */
    @Column(name = "筛选简历")
    private Integer screenCount;

    /**
     * 初筛数量
     */
    @Column(name = "初筛通过")
    private Integer firstScrCount;

    /**
     * 面试数量
     */
    @Column(name = "已面试")
    private Integer viewCount;

    /**
     * offer数量
     */
    @Column(name = "已发offer")
    private Integer offerCount;

    /**
     * 入职数量
     */
    @Column(name = "已入职")
    private Integer entryCount;

    /**
     * 完成率
     */
    @Column(name = "招聘完成率", rate = true)
    private BigDecimal completionRate;

    /**
     * 职位状态  0 正常  1 已停止招聘 2 职位已删除
     */
    private Integer state;

    /**
     *
     */
    @Column(name = "职位状态")
    private String stateString;

    /**
     * 所属公司名称
     */
    @Column(name = "所属公司")
    private String comName;

    /**
     * 投递量
     */
    @Column(name = "投递量")
    private Integer deCount;

    public Integer getPlaneCount() {
        return planeCount == null ? 0 : planeCount;
    }

    public Integer getNotCount() {
        return notCount == null ? 0 : notCount;
    }

    public Integer getScreenCount() {
        return screenCount == null ? 0 : screenCount;
    }

    public Integer getFirstScrCount() {
        return firstScrCount == null ? 0 : firstScrCount;
    }

    public Integer getViewCount() {
        return viewCount == null ? 0 : viewCount;
    }

    public Integer getOfferCount() {
        return offerCount == null ? 0 : offerCount;
    }

    public Integer getEntryCount() {
        return entryCount == null ? 0 : entryCount;
    }

    public BigDecimal getCompletionRate() {
        return completionRate == null ? new BigDecimal(0) : completionRate;
    }

    public Integer getState() {
        return state == null ? 0 : state;
    }

    public Integer getDeCount() {
        return deCount == null ? 0 : deCount;
    }
}
